#ifndef __SYMCONST_H__
#define __SYMCONST_H__
#include <ginac/ginac.h>
using namespace GiNaC;
namespace cnst
{
  // epsilon expansion parameters d=D-2*C*eps
  // DREG: C=1, DRED: C=0 for vectors
  extern symbol ep;
  extern symbol eps;
  extern symbol D;
  extern symbol C;

  extern symbol m0; 
  /// Electron
  extern symbol me;
  /// b-quark
  extern symbol mb;
  /// Z-boson
  extern symbol mZ;
  /// Gauge(Z)-boson
  extern symbol mGZ;
  /// phi4 mass
  extern symbol mS;
  
  ///Yukawa couplings
  extern symbol lB;
  
  /// Gauge fixing constants
  extern symbol xi,xiZ, xiW;
  // Input impulses
  extern symbol p1, p2;
  // Outgoing momentums
  extern symbol q1;
  extern symbol q2;
  // Loop momentums
  extern symbol k1;
  extern symbol k2;
  extern symbol k3;
  extern symbol k4;
  extern symbol k5;
  extern symbol k6;

  extern varidx mu0;
  extern varidx mu1;
  extern varidx mu2;
  extern varidx mu3;
  extern varidx mu4;
  extern varidx mu5;
  extern varidx mu6;
  extern varidx mu7;
  extern varidx mu8;
  extern varidx mu9;
  extern varidx mu10;
  extern varidx mu11;
  extern varidx mu12;
  extern varidx mu13;
  extern varidx mu14;
  extern varidx mu15;
  extern varidx mu16;
  extern varidx mu17;
  extern varidx mu18;
  // Scalar products
  extern symbol k1_p1;
  extern symbol k1_p2;
  extern symbol k1_q1;
  extern symbol k1_q2;
  extern symbol k2_p1;
  extern symbol k2_p2;
  extern symbol k2_q1;
  extern symbol k2_q2;
  extern symbol k3_p1;
  extern symbol k3_p2;
  extern symbol k3_q1;
  extern symbol k3_q2;
  extern symbol k4_p1;
  extern symbol k4_p2;
  extern symbol k4_q1;
  extern symbol k4_q2;
  extern symbol k5_p1;
  extern symbol k5_p2;
  extern symbol k5_q1;
  extern symbol k5_q2;
  extern symbol k6_p1;
  extern symbol k6_p2;
  extern symbol k6_q1;
  extern symbol k6_q2;
 
 
  extern symbol  k1_k1;
  extern symbol  k1_k2;
  extern symbol  k1_k3;
  extern symbol  k1_k4;
  extern symbol  k1_k5;
  extern symbol  k1_k6;
  extern symbol  k2_k2;
  extern symbol  k2_k3;
  extern symbol  k2_k4;
  extern symbol  k2_k5;
  extern symbol  k2_k6;
  extern symbol  k3_k3;
  extern symbol  k3_k4;
  extern symbol  k3_k5;
  extern symbol  k3_k6;
  extern symbol  k4_k4;
  extern symbol  k4_k5;
  extern symbol  k4_k6;
  extern symbol  k5_k5;
  extern symbol  k5_k6;
  extern symbol  k6_k6;
  
  extern symbol p1_p1;
  extern symbol p2_p2;
  extern symbol q1_q1;
  extern symbol q2_q2;
  extern symbol p1_q1;
  extern symbol p1_q2;
  extern symbol p2_q1;
  extern symbol p2_q2;

  extern symbol l1,l2,l3,l4,l5;
  extern symbol i1,i2,i3,i4,i5,i6;
  extern const lst lm;
  extern const lst im;
  extern const lst km;

  

// scalar products for reduze

  extern symbol  i1_i1;
  extern symbol  i1_i2;
  extern symbol  i1_i3;
  extern symbol  i1_i4;
  extern symbol  i1_i5;
  extern symbol  i1_i6;
  extern symbol  i2_i2;
  extern symbol  i2_i3;
  extern symbol  i2_i4;
  extern symbol  i2_i5;
  extern symbol  i2_i6;
  extern symbol  i3_i3;
  extern symbol  i3_i4;
  extern symbol  i3_i5;
  extern symbol  i3_i6;
  extern symbol  i4_i4;
  extern symbol  i4_i5;
  extern symbol  i4_i6;
  extern symbol  i5_i5;
  extern symbol  i5_i6;
  extern symbol  i6_i6;


  extern symbol k1_i1;
  extern symbol k1_i2;
  extern symbol k1_i3;
  extern symbol k1_i4;
  extern symbol k1_i5;
  extern symbol k1_i6;

  extern symbol k2_i1;
  extern symbol k2_i2;
  extern symbol k2_i3;
  extern symbol k2_i4;
  extern symbol k2_i5;
  extern symbol k2_i6;

  extern symbol k3_i1;
  extern symbol k3_i2;
  extern symbol k3_i3;
  extern symbol k3_i4;
  extern symbol k3_i5;
  extern symbol k3_i6;

  extern symbol k4_i1;
  extern symbol k4_i2;
  extern symbol k4_i3;
  extern symbol k4_i4;
  extern symbol k4_i5;
  extern symbol k4_i6;

  extern symbol k5_i1;
  extern symbol k5_i2;
  extern symbol k5_i3;
  extern symbol k5_i4;
  extern symbol k5_i5;
  extern symbol k5_i6;

  extern symbol k6_i1;
  extern symbol k6_i2;
  extern symbol k6_i3;
  extern symbol k6_i4;
  extern symbol k6_i5;
  extern symbol k6_i6;
}/// end of namespace cnst

varidx mu(unsigned int );

#endif // __SYMCONST_H__
